8129cb4ea3cf2386f5de0a8a79b4e187f8cdc2f3,src/main/java/com/github/lindenb/jvarkit/tools/vcfviewgui/VcfStage.java,VcfStage,doMenuSaveAs,#,442

Before Change


    		{
    		try
    			{
    			binding=new SimpleBindings();
    			compiledScript =this.owner.javascriptEngine.compile(this.javascriptArea.getText());
    			binding.put("header", this.vcfFileReader.getFileHeader());
    			}
    		catch(final Exception err)
    			{
    			JfxNgs.showExceptionDialog(this, err);
    			return;
    			}
    		}

		
		VariantContextWriter w=null;
		CloseableIterator<VariantContext> iter=null;
		try
			{
			final VariantContextWriterBuilder vcwb=new VariantContextWriterBuilder();
			vcwb.setOutputFile(saveAs);
			w= vcwb.build();
			VCFHeader header2= new VCFHeader(this.vcfFileReader.getFileHeader());
        	final String filterName = this.javascriptFILTERfield.getText().trim();
        	if(!filterName.isEmpty())
        		{
        		header2.addMetaDataLine(new VCFFilterHeaderLine(filterName, "Set by User in JfxNgs"));
        		}
			w.writeHeader(header2);
			iter=this.vcfFileReader.iterator();
			while(iter.hasNext())
				{
				VariantContext ctx=iter.next();
				if(compiledScript!=null)
        			{
        			binding.put("variant", ctx);
        			if(!super.accept(compiledScript,binding))
        				{
        				if(filterName.isEmpty()) continue;
        				ctx=new VariantContextBuilder(ctx).filter(filterName).make();
        				}
        			}
				w.add(ctx);

After Change


    		try
    			{
    			CompiledScript  compiledScript =this.owner.javascriptEngine.compile(this.javascriptArea.getText());
    			javascriptFilter=new VcfJavascripFilter(
    				this.javascriptFILTERfield.getText().trim(),
    				this.vcfFileReader.getFileHeader(),
    				compiledScript);
    			
    			}
    		catch(final Exception err)
    			{
    			JfxNgs.showExceptionDialog(this, err);
    			return;
    			}
    		}

		
		VariantContextWriter w=null;
		CloseableIterator<VariantContext> iter=null;
		try
			{
			final VariantContextWriterBuilder vcwb=new VariantContextWriterBuilder();
			vcwb.setOutputFile(saveAs);
			w= vcwb.build();
			final VCFHeader header2= new VCFHeader(this.vcfFileReader.getFileHeader());
        	if(!javascriptFilter.filter.isEmpty())
        		{
        		header2.addMetaDataLine(new VCFFilterHeaderLine(javascriptFilter.filter, "Set by User in JfxNgs:"+
        				this.javascriptArea.getText().replaceAll("[\n\t\r ]+"," ")
        				));
        		}
			w.writeHeader(header2);
			iter=this.vcfFileReader.iterator();
			while(iter.hasNext())
				{
				VariantContext ctx=iter.next();
				if(javascriptFilter!=null)
        			{
        			ctx = javascriptFilter.eval(ctx);
        			if(ctx==null) continue;
        			}
				w.add(ctx);
				}
			w.close();